"""
Filtro hace compatible firefox con IE
en algunas cosas.
@created 2 abril 2011
@author JGLC
"""
from lib.filter import Filter
import re

class BugsIEFilter (Filter):
    includes = [r'.+']

    def bug1(self, data):
        """
        bug.1 corrige consulta de formularios.
        @todo verificar que este dentro de <script>
        """


        bug1rex = r'document\.(.+)\([\'\"](.+)[\'\"]\)'
        bug1fix = r'document.\1.\2'

        #busca en el contenido todo lo que se encuentre con document.form('campo')
        bugs = re.findall(r'document\.\w+\(\s*[\'\"]\w+[\'\"]\s*\)', data, re.IGNORECASE)
        for bug in bugs:
            rs = re.search(bug1rex, data)

            #verifica que lo encontrado exista en una etiqueta form
            if rs:
                name_form = rs.group(1)
                exist_form = re.search(r'<(\w+)[^>]name="%s"'%(name_form), data,re.IGNORECASE)
                if exist_form:
                    fixbug = re.sub(bug1rex, bug1fix, bug, re.IGNORECASE)
                    print "BugsIE.BUG1." + bug + ' -> ' + fixbug
                    data = data.replace(bug, fixbug)

        return data

    def process (self, data):
        data = self.bug1(data)

        return data
